package com.egao.customer.service;

import com.egao.common.core.damon.results.PageResult2;
import com.egao.common.core.web.JsonResult;
import com.egao.common.system.entity.User;
import com.egao.customer.entity.Customer;
import com.egao.customer.entity.PayHistory;
import net.sf.json.JSONObject;
import org.apache.poi.ss.formula.functions.T;

import java.text.ParseException;
import java.util.List;
import java.util.Map;

/**
 * 客户管理服务类
 * @author : Doman
 * @date : 2020-06-13 13:36:04
 * @version ：1.0
 */
public interface CustomerService /*extends IService<Customer>*/ {

    /**
     * 分页查询
     */
    //PageResult<Customer> listPage(PageParam<Customer> page);

    /**
     * 查询所有
     */
    //List<Customer> listAll(Map<String, Object> page);

    /**
	 * 分页查询
	 * @param page
	 * @param customer
	 * @return
	 */
	public JSONObject list(PageResult2<T> page, Customer customer, User loginUser) throws Exception;

	/**
	 * 获取list
	 * @param customer
	 * @return
	 */
	public List<Customer> list(Customer customer, User loginUser);

	/**
	 * 根据Id查询
	 * @param customer
	 * @return
	 */
	public Customer getById(Customer customer);

	/**
	 * 报停
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult bt(Customer customer, User loginUser);

	/**
	 * 预付款
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult yfk(Customer customer,PayHistory payHistory, User loginUser);

	/**
	 * 卡片id修改
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult cardUpdate(Customer customer, PayHistory payHistory,User loginUser);

	/**
	 * 报停
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult jf(Customer customer, PayHistory payHistory,User loginUser) throws ParseException;

	/**
	 * 退款
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult tk(Customer customer, PayHistory payHistory,User loginUser);

	/**
	 * 开口费
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult kkf(Customer customer, PayHistory payHistory,User loginUser);

	/**
	 * 报停
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult violations(Customer customer, PayHistory ph, User loginUser);

	/**
	 * 保存
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult save(Customer customer, User loginUser);

	/**
	 * 修改
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult update(Customer customer, User loginUser);

	/**
	 * 修改
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult updateState(Customer customer, User loginUser);

	/**
	 * 删除
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult remove(Customer customer, User loginUser);
	/**
	 * 删除
	 * @param customer
	 * @param loginUser
	 * @return
	 */
	public JsonResult removeByIds(Customer customer, User loginUser);
}
